package com.zw.langchainai.assistant.aiservice;

import dev.langchain4j.service.MemoryId;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.V;
import dev.langchain4j.service.spring.AiService;
import dev.langchain4j.service.spring.AiServiceWiringMode;

/**
 * 创建记忆隔离对话的智能体
 */
@AiService(
        wiringMode = AiServiceWiringMode.EXPLICIT,
        chatModel = "qwenChatModel",
        chatMemoryProvider = "chatMemoryProvider",
        tools = "calculatorTools" // 配置tools
)
public interface SeparateChatAssistant {
    /**
     * 分离聊天记录
     *
     * @param messageId 对话ID
     * @param message   消息
     * @return 响应
     */
    String chat(@MemoryId String messageId, @UserMessage String message);

    @SystemMessage("你好朋友,请用南京话回答问题")
    String chartBySystemPrompt(@MemoryId String messageId, @UserMessage String message);

    @SystemMessage(fromResource = "prompt/systemPrompt.txt")
    String chartBySystemPrompt2(@MemoryId String messageId, @UserMessage String message);

    @SystemMessage("你是我的好朋友，请用东北话回答问题。今天是{{current_date}}")
    String chartBySystemPrompt3(@MemoryId String messageId, @UserMessage String message);

    @SystemMessage(fromResource = "prompt/my-system-prompt.txt")
    String chartBySystemPrompt4(@MemoryId String messageId, @UserMessage String message, @V("userName") String userName, @V("age") Integer age);


    @UserMessage("你好朋友,请用南京话回答问题.{{message}}")
    String chartByUserPrompt(@MemoryId String messageId, @V("message") String message);
}
